/*!
 *  serial.h - H8/300H Tinyサンプルプログラム
 *
 *  日付        内容
 *  ----------- ------------------------------------------------
 *  2009/08/23  新規作成
 */
#ifndef __SERIAL_H__
#define __SERIAL_H__

#include "typedef.h"

#define SCI_RB_SIZE 40 //受信バッファ

/*ボーレート*/
enum brd {
    CBR_115200 = 3,
    CBR_57600 = 7,
    CBR_38400 = 11,
    CBR_19200 = 23,
    CBR_14400 = 31,
    CBR_9600 = 47,
    CBR_4800 = 95,
    CBR_2400 = 191,
};

/*パリティ*/
enum Parity {
    even,
    odd,
    non
};

/*初期化
シリアル通信を使用する前に初期化が必要。
引数：　baudrate　：　ボーレートの指定（上記列挙子から指定）
  parity　：　パリティの設定（上記列挙子から指定）
  stop　：　ストップビット長の設定（0～2）
戻り値：無し
*/
void InitSci3(BYTE baudrate,BYTE parity ,BYTE stop);

/*1バイト受信
シリアル通信で1バイト受信する関数。
（実際にはバッファから1バイトのみ持ってくる）
引数：　受信データを入れる変数のポインタ
戻り値： 0：バッファが空
   1：バッファにデータ有り
*/
BYTE SciByteRx(BYTE *data);

/*1バイト送信
シリアル通信で1バイト送信する関数。
引数：　送信データ
戻り値：　無し
*/
void SciByteTx(BYTE data);

/*文字列送信
文字列orバイトデータの配列を送信する関数。
引数：　*str：送信する文字列のポインタ
  dataleng：送信する文字数
戻り値：　無し。
*/
void SciStrTx(BYTE *str,UINT dataleng);


#endif
